Electronic device and method for selectively applying message actions

ABSTRACT

An electronic device and method are provided for automatically identifying a message in a message thread to which a selected single-message action is to be applied, without requiring display of individual messages in a separate listing. Each single-message action is associated with one or more message attributes. When a single-message action is selected, a message in the thread having matching attributes is selected. While the selected message may be the most recent message in the thread having those attributes, but may not be the most recently received or most recently sent message in the thread.

TECHNICAL FIELD

This application claims priority to Canadian Patent Application No.______ filed on 18 Jul. 2011 having attorney docket number 40575-CA-PAT,the entirety of said application is incorporated herein by reference.

TECHNICAL FIELD

The present disclosure relates generally to an electronic device andmethod for applying actions to electronic messages.

BACKGROUND

A messaging client executing on an electronic device may be configuredto display messages to the user in a listing ordered according to amessage attribute such as message timestamp, recipient or sender, orsubject line. Messages may also be logically or physically grouped inthreads (conversations), which are collections of messages having acommon thread identifier value, subject line, or other messageattribute. The messaging client may thus display an ordered listing ofmessage threads rather than individual messages. This view provides foran efficient display of information to the user, since each entrydisplayed in the list may represent a group of both sent and receivedmessages. When the user wishes to take an action applicable to a singlemessage, such as replying to a message or forwarding a message, one ofthe message threads listed in the display must be selected and a furtherview of the messages contained within that thread displayed so that theuser may select the appropriate message to which the action is to beapplied.

BRIEF DESCRIPTION OF THE DRAWINGS

In drawings which illustrate by way of example only embodiments of thepresent application, in which like reference numerals describe similaritems throughout the various figures,

FIG. 1 is a block diagram of an embodiment of an electronic device foruse with the embodiments described herein.

FIG. 2 is a schematic diagram illustrating interoperation of messagedata stores, collection objects, and a messaging client executing on theelectronic device of FIG. 1.

FIG. 3 is an example of a graphical user interface displaying a messagethread listing view on an electronic device.

FIG. 4 is an example of a graphical user interface displaying anindividual message list view on an electronic device.

FIG. 5 is a variant of the graphical user interface of FIG. 3 withgraphical user interface elements for message actions.

FIG. 6 is an example of a graphical user interface for a messagecomposition screen for a reply message.

FIG. 7 is a flowchart illustrating a process for selecting a message forapplication of a reply action.

FIG. 8 is a flowchart illustrating a process for selecting a message forapplication of a reply-all or reply to all action.

FIG. 9 is a flowchart illustrating a process for selecting a message forapplication of a forward action.

FIG. 10 is a flowchart illustrating a process for selecting a draftmessage for application of a send or edit action.

FIG. 11 is an example of a graphical user interface for displaying amessage thread listing including a message thread with a draft message.

FIG. 12 is a flowchart illustrating a process for selecting a messagefor application of a single-message action.

DETAILED DESCRIPTION

The embodiments described herein provide a communication device, methodand system for applying a selected single-message action applicable to asingle message, such as a “reply” or “forward” action, to a singlemessage in a message thread without requiring prior user selection ofthat single message.

There is thus provided a method, implementable at an electronic device,for applying a single-message action to an email message, the methodcomprising: displaying a listing of message threads; while said listingof message threads is displayed, detecting selection of one of themessage threads, said message thread comprising a plurality of emailmessages and detecting selection of a single-message action to beapplied to a single email message, the selected single-message actionbeing associated with at least one message attribute; identifying one ofthe plurality of email messages comprising said at least one messageattribute; and applying the selected single-message action to saididentified email message.

In one aspect, identifying the one of the plurality of email messagescomprises identifying a most recent one of the plurality of emailmessages comprising said at least one message attribute.

In another aspect, the at least one message attribute comprises themessage being marked opened.

In still another aspect, selection of one of the message threadscomprises selection of a graphical user interface element displayed atthe electronic device, the graphical user interface elementcorresponding to said one of the message threads, and said selection ofthe single-message action is carried out while said graphical userinterface element is selected.

In a further aspect, applying the selected single-message action maycomprise displaying a message composition interface comprising contentfrom the identified email message.

In still a further aspect, the selected single-message action comprisesa reply action, and the at least one message attribute comprises themessage being a received message. Alternatively or additionally, theselected single-message action comprises a forward action, and the atleast one message attribute comprises the message being a receivedmessage; or the selected single-message action comprises a reply to allaction, and the at least one message attribute comprises the messagebeing a received message and the message having a plurality ofrecipients; or the selected single-message action comprises a sendaction, and the at least one message attribute comprises the messagebeing a draft message having at least one designated recipient; or theselected single-message action comprises a flag action, and the at leastone message attribute comprises either the message being a receivedmessage, the message having an attachment, or the message both being areceived message and having an attachment. In yet another aspect, theidentified email message need not be, and is not a most recent messagein the selected message thread.

The embodiments herein also provide an electronic device for handlingmessages and for applying single-message actions to an email message,the electronic device comprising: a display interface; and a processorin communication with the display interface, the processor beingconfigured to: display a listing of message threads via the displayinterface; while said listing of message threads is displayed, detectselection of one of the message threads, said message thread comprisinga plurality of email messages, and detect selection of a single-messageaction to be applied to a single email message, the selectedsingle-message action being associated with at least one messageattribute; identify one of the plurality of email messages comprisingsaid at least one message attribute; and apply the selectedsingle-message action to said identified email message.

In one aspect of the above electronic device, the processor isconfigured to identify the one of the plurality of email messages byidentifying a most recent one of the plurality of email messagescomprising said at least one message attribute.

In another aspect, the at least one message attribute comprises themessage being marked opened.

In yet another aspect, selection of one of the message threads comprisesselection of a graphical user interface element displayed at theelectronic device, the graphical user interface element corresponding tosaid one of the message threads, and said selection of thesingle-message action is carried out while said graphical user interfaceelement is selected.

In still another aspect, the processor is configured to apply theselected single-message action by displaying via the display interface amessage composition interface comprising content from the identifiedemail message.

In yet another aspect, the selected single-message action comprises areply action, and the at least one message attribute comprises themessage being a received message; alternatively or additionally, theselected single-message action comprises a forward action, and the atleast one message attribute comprises the message being a receivedmessage; or the selected single-message action comprises a reply to allaction, and the at least one message attribute comprises the messagebeing a received message and the message having a plurality ofrecipients; or the at least one message attribute comprises the messagebeing a draft message having at least one designated recipient; or theselected single-message action comprises a flag action, and the at leastone message attribute comprises either the message being a receivedmessage, the message having an attachment, or the message both being areceived message and having an attachment.

In a further aspect, the identified email message need not be, and isnot a most recent message in the selected message thread.

There is also provided an electronic device program product comprisingan electronic device-readable medium, which may be a non-transitory orphysical medium, storing code which, when executed by an electronicdevice, causes said electronic device to carry out the methods describedherein.

These embodiments will be described and illustrated primarily inrelation to electronic devices, which include wireless communicationdevices, communicating over wireless networks and public networks. Itwill be appreciated by those skilled in the art, however, that thisdescription is not intended to limit the scope of the describedembodiments to implementation on these particular systems or to wirelessdevices. For example, the methods and systems described herein may beapplied to any appropriate electronic device adapted to communicate withanother electronic or communication device using a direct or networkcommunication interface. The electronic device may be adapted tocommunicate over a fixed or wireless connection, and may be portable orwirelessly enabled or not, provided with voice communicationcapabilities or not, and additionally or alternatively may be adapted toprocess data and carry out operations on data in response to usercommands for any number of purposes, including productivity andentertainment. Thus, the embodiments described herein may be implementedon electronic devices adapted for communication or messaging, includingwithout limitation cellular phones, smartphones, wireless organizers,personal digital assistants, desktop computers, terminals, laptops,tablets, handheld wireless communication devices, notebook computers,portable gaming devices, Internet-connected televisions, set-top boxes,digital picture frames, in-vehicle entertainment systems, entertainmentdevices such as MP3 or video players, and the like. Unless expresslystated, an electronic device may include any such device or any devicecapable of sending and receiving, or implementing a messaging client foruse in sending and receiving, messages to one or more recipients. Ascontemplated herein, the electronic device may have an integrateddisplay interface, or may comprise a display interface configured tooutput data to be rendered or painted to an external display unit suchas an external monitor or panel, television screen, projector, orvirtual retinal display (via a data port or transmitter, such as aBluetooth® transceiver, USB port, HDMI port, DVI port, and the like).References herein to a “display” or “display interface” are intended toencompass both integrated and external display units as well as dataports and transmitters used to output signals to external display units.

The embodiments herein will also be described and illustrated primarilyin relation to email messages, such as those constructed and implementedin accordance with known Internet messaging standards including InternetMessage Format RFC 5322 and RFC 2822, published by the InternetEngineering Task Force, as well as their predecessor, successor, andcompanion standards. However, it will also be appreciated by thoseskilled in the art that these embodiments are not intended to beexclusive of other message types or applications, and extend to othertypes and formats of messages, whether text or multimedia-based.Generally these message formats are adaptable to support the creation of“child” messages based on a “parent” message. A non-limiting example ofthis is the generation of a reply or forward message (the child message)from an earlier message (the parent message). The child message maycomprise an express or implied reference to the parent message, forexample by including a value in the child message header expresslyreferring to a message identifier for the parent, or by including in thechild message body content at least an excerpt of the message bodycontent of the parent. Each message may thus be expressly or impliedlyassociated with another specific message. The definition of such replyor forward messages using various identifiers or techniques will beknown to those skilled in the art.

The association of individual messages in this manner may be contrastedto those message protocols in which the messages are delivered betweensenders and recipients in a single session or stream (“conversation”),in which later messages are not associated with a specific earliermessage in the stream, but are generally only associated with the streamitself. However, the person skilled in the art will appreciate that anyappropriate message format may be employed, provided it is adaptable foruse with the embodiments described herein. Examples of other messageformats include private messages, SMS (Short Message Service), MMS(Multimedia Messaging Service), VVM (Visual Voicemail) and the like. Themessage formats to which these embodiments are applicable need not berestricted to those standardized formats. The formatting andtransmission of all such messages, storage and indexing of suchmessages, and the implementation of suitable messaging infrastructuresto support such communications, will also be known to those skilled inthe art.

These embodiments are also generally described as being implemented inconjunction with messaging client applications that are configured todisplay messages both individually and collectively in a display ofmessage “threads”, as discussed below. The messaging client need not belimited to a single-purpose or single-message format application; forexample, messages may be generated and transmitted using a socialnetworking client application, or a collaborative or groupware clientapplication.

FIG. 1 is a block diagram of an example embodiment of an electronicdevice 100 that may be used with the embodiments described herein. Theelectronic device 100 includes a number of components such as a mainprocessor 102 that controls the overall operation of the electronicdevice 100. It should be understood that the components described inFIG. 1 are optional and that an electronic device used with variousembodiments described herein may include or omit components described inrelation to FIG. 1.

Communication functions, including data and voice communications, areperformed through one or more communication subsystems 104, 105, and/or122 in communication with the processor 102. Data received by theelectronic device 100 can be decompressed and decrypted by decoder 103,operating according to any suitable decompression techniques, andencryption/decryption techniques according to one or more variousencryption or compression standards known to persons of skill in theart.

If equipped with a communication subsystem 104, this subsystem 104receives data from and sends data to wireless network 200. In thisembodiment of the electronic device 100, the communication subsystem 104is configured in accordance with one or more wireless communicationsstandards. New wireless communications standards are still beingdefined, but it is believed that they will have similarities to thenetwork behaviour described herein, and it will also be understood bypersons skilled in the art that the embodiments described herein areintended to use any other suitable standards that are developed in thefuture. The wireless link connecting the communication subsystem 104with the wireless network 200 represents one or more different RadioFrequency (RF) channels, operating according to defined protocolsspecified for the wireless communications standard, and optionally othernetwork communications.

The electronic device 100 may be provided with other communicationsubsystems, such as a wireless LAN (WLAN) communication subsystem 105 ora short-range and/or near-field communications subsystem 122 also shownin FIG. 1. The WLAN communication subsystem 105 may operate inaccordance with a known network protocol such as one or more of the802.11™ family of standards developed or maintained by IEEE. Thecommunications subsystems 105 and 122 provide for communication betweenthe electronic device 100 and different systems or devices without theuse of the wireless network 200, over varying distances that may be lessthan the distance over which the communication subsystem 104 cancommunicate with the wireless network 200. The subsystem 122 can includean infrared device and associated circuits and/or other components forshort-range or near-field communication.

It should be understood that any of the communication subsystems 104,105, 122 may optionally be included in the electronic device 100.Alternatively, a communication subsystem comprised in a dongle or otherperipheral device (not shown) may be connected to the electronic device100, either wirelessly or by a fixed connection such as a USB port, toprovide the electronic device 100 with access to a network. If providedonboard the electronic device 100, the communication subsystems 104, 105and 122 may be separate from, or integrated with, each other.

The main processor 102 also interacts with additional subsystems, ifpresent, such as a Random Access Memory (RAM) 106, a flash memory 108, adisplay 110, other data and memory access interfaces such as anauxiliary input/output (I/O) subsystem 112 or a data port 114, akeyboard 116, a speaker 118, a microphone 120, the communications 104,105, 122 and other device subsystems 124. The communication device mayalso be provided with an accelerometer 111, which may be used to detectgravity- or motion-induced forces and their direction. Detection of suchforces applied to the electronic device 100 may be processed todetermine a response of the electronic device 100, such as anorientation of a graphical user interface displayed on the displayassembly 110 in response to a determination of the current orientationof the electronic device 100. The electronic device 100 may be abattery-powered device including a battery interface 132 for receivingone or more rechargeable batteries 130.

In embodiments where a display is integrated with the electronic device,the electronic device 100 may comprise a touchscreen-based device, inwhich the display interface 110 is a touchscreen interface that providesboth a display for communicating information and presenting graphicaluser interfaces, as well as an input subsystem for detecting user inputthat may be converted to instructions for execution by the device 100.The touchscreen display interface 110 in such embodiments can be theprincipal user interface provided on the electronic device 100, althoughin some embodiments, additional buttons, variously shown in the figuresor a trackpad, or other input means may be provided. If a touchscreendisplay interface 110 is provided, then other user input means such asthe keyboard 116 may or may not be present. The controller 216 and/orthe processor 102 detects touches by any suitable contact member on thetouch-sensitive display 110.

A visualization processor or module 125 is included in the electronicdevice 100. The visualization module 125 analyzes and processes data forvisualization on the display 110. Data originally prepared forvisualization on a large-screen display may require additionalprocessing prior to visualization on a small-screen display. Thisadditional processing is accomplished by the visualization module 125.As will be appreciated by those of skill in the art, the visualizationmodule can be implemented in hardware, software, or a combinationthereof, and can comprise a dedicated image processor and associatedcircuitry, or can be implemented within main processor 102.

The electronic device 100 also includes an operating system 134 andsoftware components 136 to 152. The operating system 134 and thesoftware components 136 to 152 that are executed by the main processor102 are typically stored in a persistent store such as the flash memory108, which can alternatively be a read-only memory (ROM) or similarstorage element (not shown). Those skilled in the art will appreciatethat portions of the operating system 134 and the software components140 to 152, such as specific device applications, or parts thereof, canbe temporarily loaded into a volatile store such as the RAM 106. Selectother modules 152 may also be included, such as those described herein.Other software components can also be included, as is well known tothose skilled in the art.

A subset of software applications 136 that control basic deviceoperations may be installed on the electronic device 100 during itsmanufacture. Other software applications include a messaging client 140that can be any suitable software program that allows a user of theelectronic device 100 to send and receive electronic messages. Othertypes of software applications can also be installed on the electronicdevice 100, such as feed or content readers 150, web browsers 152, otheruser agents 154, and other modules 156. These software applications maybe supplied by the electronic device manufacturer or operating systemprovider, or may be third party applications. The additionalapplications can be loaded onto the electronic device 100 through atleast one of the communications subsystems 104, 105, 122, the auxiliaryI/O subsystem 112, the data port 114, or any other suitable devicesubsystem 124. This flexibility in application installation increasesthe functionality of the electronic device 100 and can provide enhancedon-device functions, communication-related functions, or both.

Various alternatives exist for the messaging client 140 as is well knownto those skilled in the art. Messages that have been sent or received bythe user using the electronic device 100 are typically stored in theflash memory 108 of the electronic device 100 or some other suitablestorage element in the electronic device 100. In at least someembodiments, some of the sent and received messages can be storedremotely from the device 100 such as in a data store of an associatedhost system with which the electronic device 100 communicates, whileheader information (e.g., sender and recipient identities, subject lineif applicable, message identifier or number, and optionally additionalmetadata such as message size or message content such as an excerpt ofthe message body) is provided to the device 100 for display via themessaging client 140. In some embodiments message stores are hosted in aremote location, accessible from the electronic device 100 over anetwork connection using either the messaging client 140 or another useragent 154, or the web browser 152. The electronic device 100 thusprovides a user interface to the message stores and messaging servicesthat are hosted remotely.

In use, a received signal such as message or information about a messagewill be processed by the receiving communication subsystem 104, 105, 122and input to the main processor 102. The main processor 102 will thenprocess the received signal for output to the display 110 oralternatively to the auxiliary I/O subsystem 112. A subscriber can alsocompose data items, such as messages, using the keyboard 116 inconjunction with the display interface 110 and possibly the auxiliaryI/O subsystem 112 (or, in the case of a touchscreen electronic device100, using only the display interface 110). The auxiliary subsystem 112can include devices such as: a touchscreen, mouse, track ball, infraredfingerprint detector, or a roller wheel with dynamic button pressingcapability. The keyboard 116 may be an alphanumeric keyboard and/ortelephone-type keypad. However, other types of keyboards can also beused. It will be appreciated that if the display 110 is a touchscreen,then the electronic may still comprise one or more other auxiliarysubsystem 112 devices. A composed item can be transmitted over thewireless network 200 or other network connection using an appropriatecommunication subsystem.

The communication subsystem component 104 may include a receiver,transmitter, and associated components such as one or more embedded orinternal antenna elements, Local Oscillators (LOs), and a processingmodule such as a Digital Signal Processor (DSP) in communication withthe transmitter and receiver. The particular design of the communicationsubsystems 104, 105, 122, or other communication subsystem is dependentupon the communication network 200 with which the electronic device 100is intended to operate. Thus, it should be understood that the foregoingdescription serves only as one example.

A single electronic device 100 may be provisioned for a single or formultiple messaging accounts and be configured to employ one or moremessaging formats. For example, the user may wish to access multipleservices operating over the same or different networks to send andreceive messages in different formats, or multiple services providingmessages in the same communication format. An example of this is emailmessages received both at a user account maintained by a host systemwith which the electronic device 100 is registered and optionallyconfigured to communicate via an encrypted tunnel, and at a user accountprovided by a third party service provider whose services are availableto the general public. Typically, messages associated with differentaccounts, services and/or formats are stored in distinct data stores,folders or files at the electronic device 100. For example, each messageitem received or generated at the electronic device 100 in associationwith a given service (such as email) can be stored as a separate messageor data object in a data store associated with the service, retrievablefor presentation to the user using a dedicated application executing atthe electronic device 100 and associated with that particular message,service, or content format.

In addition, the message objects may be indexed for retrieval on theelectronic device 100 either through the dedicated application itself,through a unified search process implemented in the device operatingsystem, or through another application or process for presentation ofmessage listings or content for multiple accounts, services or formats.An example of this latter type of message application is a “unifiedinbox” or “unified message box” application, which is configured topresent to the user a message listing display that can be considered tobe a global message or content list. For clarity, as will be appreciatedby those skilled in the art, the term “unified inbox”, unless statedotherwise, is intended to be inclusive of an application providingmessage listings that can include references not only to receivedmessages, but also to messages originating and/or transmitted from theelectronic device 100, drafts, and other messages that are not receivedat the device or stored in received message folder or inbox data store.The unified inbox thus provides a unified view of message informationthat serves as an entry point for access to individual messagingservices or individual messaging applications associated with each ofthe message types included in the unified inbox. The message or contentelements displayed in the unified inbox display may include, in the caseof messages such as email, header data such as sender, timestamp, andsubject line. In addition, or alternatively, at least a portion of themessage body content may also be displayed in the unified inbox. In thecase of other message types, such as instant messages, the informationdisplayed may include message body content in place of message headerdata.

FIG. 2 provides a more detailed illustration of a possible arrangementof message data stores to facilitate grouping of distinct messages inconversations or threads for presentation by the messaging client 140.These data stores may be maintained at the electronic device 100 or at aremote location accessible to the electronic device 100. In the case ofa mobile communication device, message data stores are typicallymaintained at the device itself, although the data stores at the devicemay represent only a portion of the complete message data stored inassociation with a given messaging account. Complete data stores mayalso be maintained at a remote location as noted above. In FIG. 2, thedata accessible to the electronic device 100 is provided in a number ofdistinct data stores, including first and second email stores 210, 220,first and second IM stores 240, 242, an SMS store 244, PIN message(messages addressed using a personal identification number rather thanan email address or telephone number) store 246, MMS store 248, and VVMstore 250. Messages of various formats may be stored as objects in theircorresponding data store. Multiple data stores for a given type ofmessage format, such as the email stores 210, 220 and the IM stores 240,242 may be associated with different user accounts or differentservices. Further, messages may be stored in virtual “folders” within agiven message store, as illustrated for the email stores 210, 220. Thefirst email store 210 includes two folders, one for “filed” messages 212and one for “unfiled” messages 214. “Filed” messages are those that theuser has chosen to save in a specific subfolder, either at theelectronic device 100 or in a remote data store. Allocation of a messageto a folder may be determined from a relationship of the message toothers in a specified data structure; for example, all messages in aninbox folder may be appended to a single inbox file, and thus consideredto be contained in the inbox “folder”, although no subdirectory orfolder containing further message objects is maintained. Allocation to afolder may also be made by setting a flag or other attribute valueassociated with the message; thus, a message is “filed” if a flag orattribute defining a folder is set. The remaining messages in the emailstore 210 that are not “filed” are thus unfiled messages 214. The secondemail store 220 includes an inbox folder 222, which may be a defaultfolder specified for all incoming messages received at the electronicdevice 100 or at an online service or at the host system on behalf of auser account the electronic device 100; a sent folder 226, which may beanother default folder specified for all messages sent successfully fromthe electronic device 100, or sent on behalf of a user accountassociated with the communication device; an outbox folder 224, anotherdefault folder specified for all messages in the process of beingtransmitted from the electronic device 100; a deleted folder 228specified for those messages marked for deletion; and other user-definedfolders 230. Implementation of message “folders”—whether by means of anexplicitly-set flag value, inclusion of a message in a particular fileor physical location, and the like, will be understood by those skilledin the art, and all such embodiments are contemplated herein.

The presence of a message in a folder may thus be associated with anattribute of the message; those messages in the inbox folder 222 aremessages having the attribute of being a received message, whilemessages in the outbox folder 224 are messages having the attribute ofbeing in transmission (“transmitting” messages), and messages in thesent folder 226 have the attribute of being sent messages, i.e. messagesoriginating from a message account accessible at the electronic device100. However, the presence of a message in a folder need not be used todetermine whether a message possesses a given attribute. For example,messages need not be stored in the folders defined in FIG. 2, butinstead may be stored in association with one or more flags or attributevalues defining whether the message is a received, sent, or transmittingmessage. The message data stores include not only the message dataitself (i.e., the message header and the message payload or content),but also ancillary information about the message such as metadata,including select message attributes. Some metadata may be providedwithin the header of the message. Other metadata such as internalmessage and thread identifiers (which may be different from message-ID,thread-ID or other message or in-reply-to values inserted into a messageheader for delivery), flags and timestamps, may be generated at theelectronic device 100 and stored in association with the message uponreceipt of the message or upon initial storage of the message in acommunication device message store, and are not necessarily deliveredwith the message itself when the message is sent.

Attributes may be set by a message server, electronic device, or sender,such as flags indicating an importance or priority level, flagsrepresenting labels or tags assigned to a message (which may be setmanually by a recipient or automatically by a communication device uponreceipt), and flags or other values representing common message statesor attributes such as “read”, “new”, “recent”, “draft”, “transmitting”or “pending”, “draft”, “deleted” and “error”. The meanings of suchattributes will be known to those skilled in the art, and as thoseskilled in the art will appreciate, these attributes are not intended tobe limited by a single literal meaning and other terminology may beconsidered to be synonymous with these attributes. For example, “opened”may be considered to be synonymous with “read” and “unopened” with“unread”. The existence of a flag or attribute associated with a givenmessage may imply that its converse does not apply; for example, if amessage is marked “read”, it is not “unread” or “new”, and thus it isnot necessary to set a status value or flag indicating that the message“unread” or “new”. Select attributes may transition through a series ofvalues during the life cycle of a message, either in direct response toa user action or automatically in response to external or automatedevents, without requiring direct user action. For example, when amessage is received at the electronic device 100, it may be stored inits corresponding data store 210 . . . 250 with a flag or status valueindicating that it is “new”. When the message is accessed and read bythe user, the “new” status value is deleted, and a new status value of“read” is stored with the message. This updating of the message statusis thus carried out in response to the user's actions. As anotherexample, when a message composed at the electronic device 100 isinitially transmitted over the network 120 for delivery to a recipient,it may be stored in its corresponding data store 210 . . . 250 with a“transmitting” status value or flag, indicating that the message is inthe process of being transmitted from the electronic device 100, but noconfirmation of successful transmission has been received. The“transmitting” status may be equivalent to a “pending” status, in thatthe status of the message is temporary pending a change to a morepersistent status. This status may also be referred to as an “outbox”status, as the device's queue for outbound messages for transmission maybe known as or represented by an outbox folder. Select attributes may bealterable or reversible by the user invoking a direct command to alterthe attribute. A message that is originally “new” is changed to have a“read” or “opened” attribute once the user selects that particularmessage for display or other presentation (such as text-to-speechrendering), but this latter attribute may be altered by the user to“unread” or “unopened” even after it has been rendered for presentationat the electronic device 100.

The various message stores 210 . . . 250, whether they are maintained atthe electronic device 100 and/or at a remote location, comprise a set ofdata sources that may be directly accessed from the electronic device100 and processed in diverse ways for customized presentation using aclient application, such as the aforementioned messaging client 140. Themessaging client 140 may directly access the data store, as illustratedin FIG. 2, for example, where the messaging client 140 directly accessesthe email store 210. Further, the messaging client 140 may register as alistener for each store 210 . . . 250 of interest, and receivenotifications from each store 210 . . . 250 upon a change (such asstorage of a new message in the message store or an update to the statusof an existing message). This may result in a large number of listenersregistered for each message store 210 . . . 250, and requires themessaging client 140 to identify and register with each store ofinterest.

For convenience, a merged message collection object 270 can be definedto create an aggregate master index of references for any messagesstored in one of the message stores 210 . . . 250. An example of such anobject is identified in U.S. Pat. No. 7,568,011, issued Jul. 28, 2009,the entirety of which is incorporated herein by reference. Briefly, aninstance of a merged message collection class serves as a messageaggregating object which registers as a listener with one or more of thevarious message stores 210 . . . 250 and/or folders within these stores.Each such store and/or folder returns to the merged message collectionobject 270 an index of references to each of the messages contained inthat store and/or folder comprising references to messages stored in therespective message store, as well as other optional metadata such as themessage's status or timestamp. The merged message collection object 270aggregates these indices to define an aggregated or merged collection ofmessages, which is then provided to the messaging client 140 to identifyand retrieve message data directly from one of the data stores 210 . . .250, and to generate message listing displays using techniques known inthe art.

One or more filter or search collection objects 272, 274, which aredefined with reference to one or more filter criteria to define afiltered collection of messages, may be provided. The filter collectionobject 272, 274 registers as a listener with the merged messagecollection object 270, and receives notifications when the aggregatedindex changes (by addition or removal of a message or a change to amessage status). Optionally, the filter collection object 272, 274 mayregister directly with one or more of the data stores, and receivenotification from the data stores when a change is detected. The filtercriteria may comprise particular values of specific message attributesor header values. Examples of filter criteria include the “sent”attribute, or a keyword or string that may be contained in the messagebody content. The filter can operate to either exclude messages havingan attribute matching the filter criteria, or to pass through only thosemessages with attributes matching the filter criteria.

Messages are often presented in a message application in a“conversation” or “threaded” mode, in which messages identified asbelonging to a common thread are grouped together and presented in asingle entry in a view comprising a listing of message threads.Accessing one of these single entries then invokes a further individualmessage list view in which the messages identified as belonging to thatthread are displayed. Examples of the first message listing view and thefurther individual message list view are shown in FIGS. 3 and 4respectively, which are discussed in further detail below. Thecategorization or grouping of messages may be carried out using avariety of different rules and heuristics. A simple method ofcategorizing messages as belonging to a single “thread” is to assign allmessages containing the same subject line (after excluding prefixes andtokens such as “Re:”, “Fw:”, and other strings denoting that a messageis a reply or forward of a previously received message) to one thread.Another method of grouping parent and child (i.e., reply and forward)messages together in a thread is to determine whether messages arelinked through an In-Reply-To value included in the message header,since the value would identify at least the immediately previous messagein the message thread. Threads defined in this manner or in a similarmanner may be referred to as “conversations”, since it is presumed thatthe messages are linked through common topics, as is typical of oralconversation.

However, the term “thread” is used herein to refer not only to specificgroups or subcollections of messages that are determined to be relatedwith each other through common topics or through assignment of a commonthread identifier or other common token, but also to groups orsubcollections of messages that are determined to be related with eachother through other specifically defined common message characteristicsor attributes. Messages that include a specific, predefined string ofcharacters in their subject or body (for example, all messages thatcontain “Banff” in the subject or body) may be determined to belong to asingle group or thread, or all messages identifying the same group ofaddresses or contacts in its header (whether they are identified in aTo:, Cc: or From: line) may be determined to belong to a single group orthread. Identification of a thread in these examples may be carried outusing a filtered or search collection from one of the filter objects272, 274, although a search could be executed directly on a givenmessage store, such as the email message store 210, rather than usingthe aggregated index.

Membership in a thread may be established by defining and storing athread identifier in association with each message for later retrieval;however, in some embodiments, no express thread identifier may be set,and instead the message threads or groupings are determined by executinga search using a defined keyword or selected attribute on the unthreadedmessage collection.

Determination of thread membership may be carried out by the messagingclient 140 based on the message collection it accesses from the datastores 210 . . . 250, the aggregate index of messages received from themerged message collection object 270, or from a filtered collectionobtained from the filter collection object 280. The threading functionis thus integrated with the client application. The threading functionneed not be integrated with the client application, and may instead becarried out by a separate module at the electronic device 100. Theseoptions are represented by the conversation or threading manager 280depicted in FIG. 2. The operation of the threading manager 280 isdescribed in further detail below. The threading manager 280 maydirectly register with individual message stores 210 . . . 250 to obtainmessage updates, but may also register with the merged messagecollection object 270 or the filter collection object 272, 274, and makeuser of the aggregated index or filtered index to classify messages intothreads or other related categories. The threading manager 280 thengenerates a threaded index of messages derived from the merged index orfrom the individual message stores, querying the individual messagestores 210 . . . 250 as necessary to obtain any message attributesrequired to determine membership of a given message in a thread. Themessaging client 140 would then register with the threading manager toobtain the threaded message index to obtain thread data to display alisting of threads in an inbox or other message listing display. Afuller description of the interoperation of the threading manager 280,the merged collection 270, filter collection objects 272, 274, messagingclient 140, and various stores 210 . . . 250 is provided in U.S. patentapplication Ser. No. 13/025,822 filed on Feb. 11, 2011, the entirety ofwhich is incorporated herein by reference.

FIGS. 3 and 4 provide example results of the processes described aboveas they may be depicted in a unified message box or unified inbox. Themessaging client 140 is configured to generate a view comprisinggraphical user interface elements for display on the electronic devicedisplay 110 representing individual messages and threads of messages.The user may interact with the graphical user interface elements throughcommands input via one of the input interfaces provided for theelectronic device 100 (e.g., the keyboard 116 or a touchscreen displayinterface, where the display interface 110 comprises a touchscreen) toinvoke actions to be applied to a selected message or message thread.

FIG. 3 illustrates a message thread listing view 300 of the messagingclient 140. In this example, membership of a message is defined based ona common root subject line (i.e., the subject line of the message,omitting prefixes such as “Re:” and “Fw:”, and the like). Data for thethreads represented in the view 300 may be obtained by the messagingclient 140 from a threaded indexed received form the threading manager280 as described above. The thread listing is constructed by themessaging client 140 by traversing the threaded index to identify allmessages corresponding to each thread identifier, and to determinemessage thread attributes for the listing entry such as a thread status(described in detail in the aforementioned U.S. patent application) andthread timestamp based on the individual timestamps and statuses ofmessages that are identified as members of that thread. A thread'stimestamp, for example, is typically the latest timestamp associatedwith any individual message belonging to the thread. The thread's statusmay be derived from a single message's attributes (e.g., if the mostrecently received message in the thread is unread, then the thread'sstatus is unread). Alternatively, the messaging client 140 may trackmessage threads and the membership of each message received at or sentfrom the electronic device 100 in an associated thread.

Once the messaging client 140 has identified the various message threadsand their associated attributes, the message threads are collatedaccording to a selected collating criterion. In the example of FIG. 3,the typical collation criterion of thread timestamp is used, and thethread entries 310 a . . . 310 i are listed in reverse chronologicalorder, as illustrated by the timestamps depicted in FIG. 3. Each threadentry, as illustrated with reference to the first entry 310 a, includesan identifier of a last sender and/or recipient in the thread 312 a, aroot subject line (when available) 312 b, and the thread timestamp 312c. For those threads comprising messages that typically do not include asubject line, such as instant messages or SMS messages, the thread entrymay instead comprise the most recent message sent or received in thethread, or an excerpt thereof.

The identifier 312 a may be the email address or friendly name (as maybe stored in an address book at the electronic device 100 in associationwith the sender/recipient's email address) of the sender of the messagewith the latest timestamp in the thread (in which case the identifier312 a could identify the user of the electronic device 100, since theuser may have been the last sender in the thread), of the sender of themost recent message in the thread that was sent by a party other thanthe user of the electronic device 100, or of the sender and allrecipients of messages in the thread, which may or may not exclude theuser of the electronic device 100. In the example of FIG. 3, theidentifier 312 a references the sender of the most recent message in thethread that was not sent by the communication device user. Thus, thethread entry 310 a in this embodiment indicates at a glance what otherparticipant had last contributed a message to the thread, but does notindicate to the user who the recipients of that message other than theuser him- or herself may have been.

This example illustrates that detailed information relevant to the stateof the message thread is sometimes omitted due to design choice, spaceconstraints in the view 300, and/or the size of the display interface110. In order to determine who the individual recipients or othersenders of messages in a thread may have been, a further view must begenerated by the messaging client 140 to list the individual messages ofthe thread. In addition, it will be appreciated that certain actionsthat are generally applied to a single message—such as opening anindividual message for reading, replying to a message, forwarding amessage, flagging or deleting a message, and so forth—require that aspecific message be identified for that action. The listing of messagethreads in FIG. 3 efficiently displays consolidated information for anumber of messages by displaying thread entries, but because the onlyentries listed are for message threads, a single message containedwithin a thread consisting of multiple messages cannot be expresslyselected by the user using the view 300.

Accordingly, one solution is to display a further individual messageview in response to the selection of a particular message thread in theview 300. An example of such a further individual message view isillustrated in FIG. 4, which shows an individual message view 400invoked upon selection of the first thread entry 310 a in FIG. 3. Thisnew message view 400 shows that there are three messages in the thread410 a, 410 b, 410 c. In this example, the information displayed for eachmessage entry in the view identifies the sender and recipient of themessage, along with an excerpt from the message body content. From thisview the user can select an individual message in order to carry out asingle-message action, such as opening the selected message to read it,deleting the selected message, replying to the selected message, and soforth. A “single-message” action, in this context, is a messageprocessing or handling action that is typically applied to a singleidentified message, whether that message is contained within a messagethread or not. For example, the third message displayed 410 a may beselected using input means provided at the electronic device 100—asrepresented by the highlight box 420—and a context menu 430 invoked,from which one of a number of possible actions such as “open” (todisplay the message for viewing), “reply”, “forward”, and so forth canbe selected. Once selection of an action is detected, that action isapplied to the specific selected message.

The display of the further individual message view 400 adds an extrastep to the process of applying an action to a selected individualmessage. Thus, while the threaded view 300 showing the listing ofmessage threads provides efficiencies in display, that efficiency isreduced since the messaging client 140 must listen for a further inputcommand (to select the thread 310 a) and retrieve message data from theappropriate message stores to render the further message view 400 beforea command can be received to apply a single-message action to a selectedmessage in the thread. This results in a possible increase in processingoverhead, since additional memory reads are required to retrieve themessage information required for the further individual message view400, and since the electronic device 100 must be configured to detectboth the selection of a message thread as well as selection of a messagewith the thread, in addition to selection of an action to be applied tothe message.

To address this inefficiency, the messaging client 140 can be configuredto automatically and intelligently identify a specific message in amessage thread when a selection of a single-message action is detected,and to apply the selected single-message action to the identifiedmessage without requiring the intermediate display of the furtherindividual message view 400. The message that is identified may varyaccording to the type of single-message action selected, even if thedifferent actions are to be applied to a message in the same thread.

An example of this solution is illustrated in FIGS. 5 and 6. FIG. 5illustrates a similar view 500 to that shown in FIG. 3. The view 500comprises a listing of message threads, just as in FIG. 3. When a givenmessage thread entry (such as the thread entry 310 a) is selected (asindicated by highlight box 520) and a command to invoke an actionapplicable to a single message is detected by the electronic device 100,rather than merely displaying a view listing the individual messages inthe selected message thread, one of the individual messages in thethread is automatically selected by the messaging client 140 forapplication of the single-message action. In the example of FIGS. 5 and6, the “reply” action is selected (i.e., a command is received by theelectronic device 100 to create a new message for transmission from theelectronic device 100 as a response to an existing message).

The next view displayed by the messaging client 140 is therefore a viewsuch as the message composition view 600 of FIG. 6, rather than a listof individual messages in the thread as in FIG. 4. As is conventional inthe art, the message composition view 600 includes an address field 610in which addresses or names of addressees may be input; a subject linefield 620, and a message body input field 630, where message content canbe entered by the user. Since the selected action was “reply”, theaddress field 610 is automatically populated with the address and/orname of the sender of a particular message in the thread. Also, sincethe example of FIGS. 5 and 6 is of an email thread and reply, thesubject line field 620 is populated with the root subject line of thethread, in this case preceded by a token indicating that the messagebeing generated is a reply to an earlier message in the thread. Further,because the message thread in this example is an email thread, themessage body further comprises an automatically-inserted quoted copy ofthe message 635 for which the new reply message is being generated; thisquoted copy 635 is the message in the thread automatically selected bythe messaging client 140. It will be appreciated, though, that whileconventionally in email correspondence the messaging client 140typically inserts a copy of the message to which a reply is beingcomposed, the addition of the quoted copy 635 is not necessary. In someembodiments, for example, the quoted copy 635 is not inserted at theelectronic device 100, but rather by the messaging server associatedwith the device 100 once the message is transmitted from the device 100to the messaging server for routing to the recipient(s).

The process of selecting an individual thread entry from the messagethread listing view 500 will be illustrated with reference to FIG. 7. At700, a message thread listing is displayed, for example in the messagethread listing view 500 of FIG. 5. At 710, selection of a single threadentry listed in the message thread listing is detected. Once a messagethread has been selected in this manner, at 720 selection of asingle-message action is detected. In this example, the single-messageaction is a reply action. A reply command, as those skilled in the artappreciate, typically comprises invocation of a message compositionscreen, for composing a message, but the message body field of thecomposition screen is automatically populated with content from a singlemessage that is selected as the parent of the reply or forward message.The reply message action is thus considered to be a “single-message”action. The selection of the single-message action can take place whilethe single thread entry remains selected, and more specifically, beforeany single message in the message thread is selected or otherwiseidentified.

The selected single-message action is associated with one or moremessage attributes. In FIG. 7, the one or more message attributesconsists of the message being a received message, rather than a sentmessage. At 730, message attributes for the messages in the selectedmessage thread are retrieved, for example from the corresponding messagestore or stores. This step may be carried out in the sequenceillustrated in FIG. 7, although it may have been carried out prior todetection of the reply action selection 720. At 740, a message havingmessage attributes matching the one or more message attributes isidentified. There may be more than one message having matchingattributes, in which case the most recent message in the message thread(i.e., the message with the most recent timestamp) having those matchingattributes is identified. The identification of the most recent messagemay be explicitly determined by comparing timestamps of messages withmatching attributes in the thread or by evaluating the messages of thethread in a chronological or reverse chronological order. The selectedaction is then applied at 750 to the message identified at block 740.

A further example of this process with multiple message attributes isillustrated with reference to the set of representative messages set outin Table 1 below:

TABLE 1 # Attribute Sender Recipient Timestamp Body In Reply To 1 ReadReffelle Violet 11:50 It's painful trying to keep n/a (received) up withyour . . . 2 Sent Violet Reffelle 11:51 I'm just responding to 1 whatyou're sending . . . 3 Unread Reffelle Violet 11:53 Nice try. You getbored 2 (received) and cleave the thread . . .

Table 1 sets out message data (both metadata and content, i.e., bodyexcerpt) for the messages in the thread represented by the thread entry310 a of FIG. 5. These individual messages are also listed in theindividual message listing view 400 of FIG. 4. As can be seen by thevarious status icons in FIG. 4 and in the table above, the threemessages in the thread have different attributes, such as differentstatuses: the first message 410 b (message 1 in the above table), whichis the first one received in the thread at the electronic device 100,has been marked read, i.e. has been opened for viewing on a display,although not necessarily literally read or otherwise consumed by theuser. Message also has the attribute of being a received message, i.e.,it was received at an account associated with a user of the electronicdevice 100 (in Table 1, the recipient “Violet” is a name associated witha user of the electronic device 100 or the account at which the messagewas received). The second message (410 b, or message 2 in the abovetable) was sent by the user and thus has the attribute of a sentmessage. The third message (410 c, or message 3) is a received messagebut marked unread (i.e., either never opened for viewing on the display,or previously opened but subsequently marked unread).

Referring to FIG. 5 and the process of FIG. 7 again, at 700 a messagethread listing is displayed and. at 710 selection of a single threadentry listed in the message thread listing is detected. In a view suchas the view 500 of FIG. 5, the various thread entries are selectablethrough a user interface. In the case of a touchscreen electronic device100 an individual entry can be selectable by a touch detected on thesurface of the display interface 110 corresponding to the area in whichthe individual thread entry is displayed (i.e., a graphical userinterface element corresponding to that thread entry). Other input meansthat may be available at the electronic device such as an external orintegrated keyboard, trackball, or optical joystick, etc., not shown inFIG. 5, can also be used to select a single message thread in the view500.

Next, at 720, selection of the single-message action—again, a replyaction—is detected. This selection can take place while the graphicaluser interface element corresponding to the message thread continues tobe displayed as “selected” in the message thread listing view 500, asindicated by the highlight box 520 in FIG. 5. The command to invoke thesingle-message action can be input at and detected by the electronicdevice 100 by a variety of means. As illustrated in FIG. 5, for example,graphical user interface elements, such as buttons 512, 514, 516, 518can be displayed overlaying the view 500 (in this example, in an overlay510). Actuation of one of these elements 512, 514, 516, 518, for exampleby touch (via a touchscreen interface) or clicking or other selectionactions (via other input mechanisms at the electronic device 100)results in invocation of the corresponding action. In FIG. 5, element512 represents a compose message command; element 514 a reply command;element 516 a forward command; and 518 a flag command. Other means maybe used to invoke the single-message action. For example, an inputreceived via keyboard (such as actuation of a lower-case “r” key for“reply”), or selection of a reply command in a context menu (not shownin FIG. 5) may be used.

Again, the selected single-message action is associated with one or moremessage attributes, but in this example the one or more messageattributes are that the message is a received message and that themessage has been marked open or read. Again at 730, message attributesfor the messages in the selected message thread are retrieved, and at740 a message having message attributes matching the one or more messageattributes is identified (although in this example the attributesinclude the message being marked read). As can be seen from Table 1,both messages 1 and 3 are messages that were sent by a user other than auser of the electronic device 100, and are considered to be “received”messages, but only the message 1 is both received and marked read oropen. Thus in this case only message 1 meets the message attributes, soit is the most recent message matching those attributes. Had more thanone message met the specified message attributes—for example, hadmessage 3 also been marked read—then a determination is also made at 740which of those messages is the most recent in the thread, sincetypically the user would wish to apply an action to a more recentmessage in the thread.

Next, at 750, the selected action is applied to the message identifiedat 740. The result in this reply example is the invocation of a composereply message view such as that shown in FIG. 6 and described above. Asa result, a fourth message is added to the thread, as shown in Table 2below. The fourth message, as indicated by the “In Reply To” column, isgenerated in reply to message 1 rather than message 3 since message 1was the most recent message in the thread that possessed the attributesassociated with the reply action.

TABLE 2 # Attribute Sender Recipient Timestamp Body In Reply To 1 ReadReffelle Violet 11:50 It's painful trying to keep n/a (received) up withyour . . . 2 Sent Violet Reffelle 11:51 I'm just responding to 1 whatyou're sending . . . 3 Unread Reffelle Violet 11:53 Nice try. You getbored 2 (received) and cleave the thread . . . 4 Sent Violet Reffelle11:54 Really. I haven't in a 1 while. The last time . . .

Consider the scenario where, after new message 4 was generated, receivedmessage 3 was marked read. If the same thread were then selected in themessage thread listing view 500 and the reply action selected again,given the above association of message attributes with the reply action,at 740 message 3 would be selected as the parent message for the reply.

It can be seen from the foregoing that the message that is selected foruse with the reply action is not necessarily the most recent message inthe thread. In the example illustrated by Table 1, the most recentmessage in the thread is message 3, yet it was message 1 that wasautomatically selected because message 3 had not yet been marked open orread. Even in the embodiment where the message being marked open or readis not an attribute associated with the selected action, it may not bethe most recent message in the thread that is selected for the replyaction if the most recent message was not a received message.

This process can also be applied to other single-message actions such as“reply to all” or “reply-all”, i.e., a reply action in which the replymessage is addressed to multiple recipients including the sender andrecipients (usually, recipients other than the user of the electronicdevice 100) of the parent message. Table 3 provides a second set ofrepresentative messages, including both metadata and content:

TABLE 3 # Attribute Sender Recipient Timestamp Body In Reply To 1 ReadRudolph Esme, 12:12  Thanks for the kind n/a (received) Quigley, words,Esme. Quigley Violet also welcomed me . . . 2 Sent Violet Rudolph, 1:04Well, if going away on 1 Esme, vacation works such an Quigleyimprovement . . . 3 Read Rudolph Violet, 1:12 Thanks, I might just do 2(received) Esme, that. (That was clumsily Quigley executed but well- . .. 4 Sent Violet Rudolph 1:31 No, really, I missed you 3 terribly. We alldid . . . 5 Unread Rudolph Violet 1:36 Now that was just cruel. 4(received) Are you still sore about . . .

The messages listed in Table 3 represent a set of messages in a furthermessage thread, such as that represented by thread entry 310 c in FIG.5. In its current state as shown in Table 3, the thread consists of fivemessages, with different attributes, including status (e.g., received,read, sent, unread) and different numbers of recipients. Messages 1, 3,and 5, for example, are received messages, as they were received at anaccount associated with the user of the electronic device 100. Messages1 and 3 also have the attribute of being read messages. Further,messages 1, 2 and 3 have multiple recipients as can be seen in Table 3,while messages 4 and 5 each have only one recipient. The most recentmessage, as defined by timestamp, is message 5.

When a message thread such as the thread represented by the thread entry310 c is selected (for example, in the message thread listing view 500of FIG. 5), in addition to or as an alternative to the reply action,reply to all action may be available, either through a graphical userinterface element (such as those displayed in the overlay 510) orthrough another command invocation means such as a context menu orkeyboard command, as described above. The reply to all action generatesa message composition view (similar to that of FIG. 6) for compositionof a reply message to the sender and recipients of a parent message,even where there is more than one recipient. The address fields (eitherTo:, Cc:, or both) of the reply message generated for editing in themessage composition view are thus automatically populated with thesender and all recipient addresses from the parent message (optionallyexcluding the user of the electronic device 100) instead of beingpopulated only with the address of the sender of the parent message.Again, the reply to all action is applied to a single message, and not athread of multiple messages.

Turning to FIG. 8, a process for automatically selecting a message inthe message thread is described. Similar to the process of FIG. 7, at800 a list of message threads is displayed. At 810, a selection of asingle message thread is detected, and at 820, selection of the reply toall action is detected. Again, as with the process described above, thesingle-message action (which operates on a single message rather than aset of messages) is selected before the single message (the operand ofthe single-message action) is identified. Also, as before, the action isassociated with at least one message attribute. In this example, theattributes associated with the reply to all action are that it is areceived message and that it has multiple recipients.

At 830, message attributes for the messages in the selected thread areretrieved, although this step may occur prior to the detection of theselection of the reply-all action at 820. At 840, the most recentmessage in the thread having the attributes associated with the reply toall action is identified. Referring to Table 3, in this case the mostrecent received message that has multiple recipients is message 3; whilemessage 5 is the most recent received message in the thread, it has onlyone recipient. Next, at 850, the reply to all action is applied to theidentified message, message 3. In this example, the action comprisesinvocation of a message composition screen for a reply to all recipientsof message 3 (in this case, Esme and Quigley; Violet, being the userassociated with the electronic device 100, may be excluded) and to thesender Rudolph. A possible result of this process, with the new reply toall message 6 in the thread, is illustrated in Table 4:

TABLE 4 At- In trib- Time- Reply # ute Sender Recipient stamp Body To 6Sent Violet Rudolph, 1:37 Yeah, right. And what 3 Esme, was this allegedold Quigley nickname?

As indicated above, the new message in the thread, message 6, wasgenerated in reply to message 3; thus, the content of message 3 may bequoted in the reply message 6.

If, after adding message 6 to the thread the reply to all action isselected again while this thread is selected in the message thread listview, following the above process requiring the attributes of a receivedmessage having multiple recipients, message 3 will again be identifiedas the message upon which the reply to all action should operate sinceit is the most recent received message having multiple recipients in thethread; although message 6 has multiple recipients, it was a sentmessage and not a received message.

In other embodiments, the message attribute of being marked read mayalso be added. Alternatively, the set of attributes associated with thereply to all action may be reduced. For example, the only attributeassociated with the action may be that the message must have multiplerecipients, in which case message 6 could be selected at step 840 eventhough it is a sent message. The reply action described with referenceto Tables 1 to 3, by contrast, may operate on any received message (andoptionally a read message), whether the received message had only one ora plurality of recipients.

A further example of a single-message action is the forward action, inwhich a new message is generated forwarding at least a portion of thecontent of a selected parent message to a newly selected addressee. Themessage attributes that are associated with the forward action may bethe same as those associated with the reply action: that the message iseither a received message, or that it is both a read and receivedmessage. Returning to the message thread illustrated in Tables 3 and 4,and referring to FIG. 9, consider the circumstance where a forwardaction is selected to be applied to this thread (including message 6).At 900, the message thread listing view similar to the view 500 of FIG.5 is displayed, listing as one of its entries the thread of Tables 3 and4. At 910, selection of this thread is detected, and at 920, selectionof the forward action is detected. Again, at 930, message attributes forthe messages in the thread are retrieved (and this step may occurearlier in the process), and it is determined at 940 which is the mostrecent message in the thread that comprises the attributes associatedwith the forward action.

In this thread, currently the most recently received message is message5. However, message 5 is currently marked unread in this example.Therefore, at 940, the next most recent received message is identified,which again is message 3. Message 3, since it is also marked read, istherefore identified as the parent message to which the forward actionis to be applied. At 950, the forward action is applied to message 3,which can include the invocation of a message composition screen forcomposing a message forwarding content of message 3 to one or morerecipients. Content from message 3 may be automatically inserted intothe body of the message to be composed, as described above in respect ofFIG. 6.

Once this new forwarding message is sent from the electronic device, afurther message 7 is added to the message thread. If message 5 were tobe subsequently marked read, and a new forward action applied to thethread, message 5 would be selected as the parent message for a newforwarding message since message 5 would now be the most recentlyreceived message that is marked read in the thread.

A send action, i.e., the instruction to initiate transmission of amessage either from the electronic device 100 or from an accountaccessible by the electronic device 100, may also be applied to a draftmessage in a message thread. When a message is composed at theelectronic device 100, it may be saved (at whatever stage of completionit may be) in the message store. Referring to FIG. 2, the message may bestored in the outbox folder 224 since it is a message that wouldtypically be queued to be sent, but marked as a “draft” message; or itmay be stored in a user-defined folder 230. The draft message, when itis stored, may contain body content, and may include a subject line (ifthe message format includes subject lines); zero or more addressees mayhave been identified for the draft message. The draft message may besubsequently edited using a message composition view in the messagingclient 140.

When a composition of a new message is initiated in a reply message, areply to all message, or a message forwarding a parent message, the newmessage is a child message and will typically have its subject linefield (if there is one) pre-populated by the subject line of the parentmessage to the new child message, optionally preceded by a tokenindicating that the new message is a reply or forward message.Alternatively, the new message's relationship to an earlier parentmessage may be indicated in the new message header as discussed above.Thus, if a new message thus generated is saved in draft form rather thanimmediately sent, its subject line or other indicator will result in themessage being included in a message thread with its parent. When a draftmessage exists in a message thread and a message thread listing view(such as the view 500) is displayed by the messaging client, to send thedraft message (or to edit the draft message before sending) the usermust select the thread, invoke an individual message listing view(similar to the view 400), and select the individual draft message toinvoke the message composition view for that message in order to editit, or else select the individual draft message to invoke a send commandto send the draft message. Both the edit draft message and send messageactions are also single-message actions, since like reply, reply to all,and forward they operate on a single message.

Returning to the message thread illustrated in Tables 1 and 2, the userof the electronic device 100 may begin composing a new message for thethread (such as a reply message in response to message 1), and save thenew message partway through composition. An example is shown in Table 5,where a draft message, message 5, has been saved, and in the meantime afurther message in the thread, message 6, has been received and read:

TABLE 5 # Attribute Sender Recipient Timestamp Body In Reply To 1 ReadReffelle Violet 11:50 It's painful trying to keep n/a (received) up withyour . . . 2 Sent Violet Reffelle 11:51 I'm just responding to 1 whatyou're sending . . . 3 Unread Reffelle Violet 11:53 Nice try. You getbored 2 (received) and cleave the thread . . . 4 Sent Violet Reffelle11:54 Really. I haven't in a 1 while. The last time . . . 5 Draft VioletReffelle 11:55 . . . but I can tell from the 1 message sizes that we . .. 6 Read Reffelle Violet 11:56 You just did it again. 4 (received)

In this example, the unsent draft message is no longer the most recentmessage in the thread, since message 6 was received since the draftmessage was saved, as can be seen from the sequential timestamps.

A process similar to the process described above for the reply, reply toall, and forward actions may be used for draft messages. Turning to FIG.10, a message thread listing view is displayed at 1000, as describedearlier. An example of a message thread listing view 1100 is illustratedin FIG. 11, where, similar to the message thread listing view of FIG. 5,a number of entries in a thread listing are shown. In this case, astatus of the first thread entry 1110 in the listing is indicated by thedisplay of a draft icon 1115, indicating that there is a saved draftmessage in the thread (such as the message 5 in Table 5 above). At 1010in FIG. 10, selection of single thread entry is detected. The selectionof first thread entry 1110 is indicated in FIG. 11 by the highlight box1120.

Next, selection of a send or edit action is detected at 1020. A sendaction is an action initiating transmission of a draft message from theelectronic device 100, while an edit action invokes the messagecomposition view for a draft message. The input detected by theelectronic device 100 may be the same for either the send or editaction; for example, in FIG. 11 a graphical user interface element 1112is provided, representing the send action. Actuation of this graphicaluser interface element 1112 will initiate the send action for anappropriate draft message identified in the selected message thread;however, if the draft message lacks an addressee in the addressee, itcannot be sent. In that case, rather than initiate the send action, themessaging client 140 would invoke the message composition view for thatdraft message to give the user an opportunity to complete the messagebefore sending. Alternatively, actuating the send graphical userinterface element 1112 or invoking a send command by another means (suchas a context menu or keyboard key press) does not actually initiatetransmission of the draft message from the electronic device 100, evenif the draft message is addressed to at least one addressee; instead, itinvokes the message composition view so that the user can review thedraft message before sending it. The send or edit action is associatedwith a message attribute, namely, that the message is a draft message.

After the selection of the send or edit action is detected, messageattributes are retrieved from the thread at 1030 (although as discussedabove this may take place earlier in the process), and at 1040 the mostrecent message that is also a draft message is identified. In theexample of Table 5, the identified message would be message 5, which isnot the most recent message in the thread, but is the most recent draftmessage in the thread. Finally, at 1050 the send or edit action isapplied to the identified message. Since, in this example, message 5 issufficiently complete (the message body is not empty, and there is atleast one addressee identified for the message, as shown in Table 5),the send action may be applied immediately to the message.Alternatively, though, the edit action is applied, and a messagecomposition view is invoked so that further editing of message 5 may becompleted.

The foregoing methods can be carried out for other types ofsingle-message actions. For example, another single-message action thatmay be invoked when a thread is selected is a flag action, which sets aflag value in association with an identified message in the thread. Theflag value may vary according to the settings in the messaging client140; for example, a flag may be set to mark a message as “important”, orto mark the message for follow up, and so forth. The message attributesassociated with the flag may be that the message is a received message,and that the message is read, on the assumption that the user would wishto flag a message received from another party, and that the user wouldhave read the message body before determining that it should be flagged.However, other message attributes may be associated with the flagaction; for example, the action may be associated with the attribute“has attachment”, i.e., that the message has an attached file.

Alternatively, if a “last changed” timestamp is stored in associationwith each message—a value indicating the time of the last change to themessage, such as the last time its status was changed between read andunread—then the flag action could be associated with the message havingthe most recent “last changed” timestamp. While this may coincide withthe most recently received or sent message in the thread, this will notalways be the case, for example if the user subsequently marks anearlier message as unread, or files the message in a different folder onthe electronic device 100.

To summarize, then, the embodiments described herein provide a methodand system implementable at a device, such as the electronic device 100,for applying a single-message action to an individual message belongingto a message thread, without requiring explicit selection of theindividual message by the user through a graphical user interface orother user interface. Instead, only the corresponding thread isselected, and the individual message is identified by the electronicdevice 100 based on message attributes that are associated with thesingle-message action, once the single-message action has beenidentified. Because the individual message is selected according topredefined criteria—the message attributes associated with thesingle-message action the individual message that is selected for usewith the single-message action is the likeliest most appropriate messagefor use with that single-message action, which may not be the case ifthe messaging client 140 universally applied any single-message actionto the most recent message in the thread (since the most recent messagecould be a sent message or an unread message, when the user would havepreferred to have the single-message action apply to a received or readmessage). Further, this solution avoids the need for the user to viewmessages in an individual message listing to select a message prior toselecting the single-message action to apply to it.

FIG. 12 provides an overview of the method. At 1200, a message threadlisting is displayed at the electronic device 100. At 1210, selection ofa single message thread in the message thread listing is detected. At1220, selection of a single-message action is detected. Thesingle-message action is associated with one or more message attributes.A single message in the selected message thread is then identified at1230, where that single message is a message that matches the messageattributes associated with the single-message action. Where more thanone message in the selected message thread matches the attributes, onlythe most recent message in the thread (i.e., the message with the mostrecent timestamp) is identified. At 1240, the single-message action thusselected is applied to the single message thus identified. The result ofthe action may be initiation of message composition, transmission of amessage, or another action, applied only to a single message.

Table 6 below summarizes a number of possible single-message actions,the nature of the operation on a single message carried out by theseactions, and the attributes associated with the single-message action.The attributes may be associated with the single-message actions inprogram code used to implement the messaging client 140, or theassociation between the attributes and the single-message actions may bestored elsewhere in memory at the electronic device 100. It will beappreciated, however, that the table below is not intended to be anexhaustive list of possible single-message actions or their associatedattributes:

TABLE 6 Single- Message Action Operation Associated Attributes ReplyInvoke message composition view for a reply received; or message to theidentified message, addressed to received and read; or a singlerecipient read or sent Reply to all Invoke message composition view fora reply received, multiple recipients; message to the identifiedmessage, addressed to or multiple recipients received and read, multiplerecipients; or read or sent, multiple recipients Forward Invoke messagecomposition view for a received; or message forwarding the identifiedmessage received and read; or read or sent Send/edit Send identifiedmessage or invoke message draft; or composition view for editing andsending the draft, at least one designated identified message recipientFlag Set flag for identified message one or more of: read; received; hasattachment; most recent last- changed timestamp Save Saves identifiedmessage in predefined folder one or more of: read; received; hasattachment; most recent last- changed timestamp Delete Deletesidentified message one or more of: read; most recent last- changedtimestamp Undelete Undeletes identified message deleted; or deleted andmost recent last- changed timestamp

The possible associated attributes identified in Table 6 are provided asexamples only. As can be seen from the table, not every possiblyrelevant message attribute need be associated with a givensingle-message action. For example, while the example of the forwardaction described above with reference to FIG. 9 associated the twomessage attributes of “received” and “read” with the single-messageaction, other attribute sets—such as “received” alone—could be used.Another option is to associate either the “read” or “sent” attributeswith the action; i.e., that the message was either a received messagethat was marked read, or a message that the user had sent from theassociated account. The rationale for this set of attributes to beassociated with the forward action is that the user would want toforward a message about whose contents the user was likely aware (asindicated by the fact that the message was marked read or that the userhad composed and sent it). Thus, the above table sets out a number ofoptions for message attributes to be associated with each single-messageaction, including those described in detail above with reference toFIGS. 7 to 10.

Other possible single-message actions include the save, delete, andundelete actions. The save action saves a message (i.e., moves or copiesit) to a predetermined folder, which is specified either at the time thesave action is initiated or preset using a messaging client 140 setting.Like the flag action, the save action can be associated with messageattributes such as read, received, has attachment, or has most recentlast-changed timestamp. The delete action has the effect of deleting theidentified message from its current folder or queue. In someimplementations, applying the delete action expunges the message fromthe message stores at the electronic device 100 (and optionally at ahost message store synchronized with the device message stores) withoutproviding the option for retrieval. In other implementations, the deleteaction moves the message to a deleted message folder 228 (as shown inFIG. 2), which may provide the user with the option to later restore themessage to its original folder (or another folder), if the messages inthe deleted message folder 228 have not been expunged in the meantime,and thus “undelete” the message. In either case, the delete action canthus act on a single message. The message attributes that can beassociated with the delete action might include “read”, on thepresumption that the user wish to delete only a message that had beenmarked read, and may also include the message in the thread that has themost recent last-changed timestamp. If an undelete action is availablefor restoring previously deleted messages, then the message attributesassociated with the action would include a “deleted” status, andoptionally the message with the most recent last-changed timestamp,i.e., the most recently deleted message. In all of the above examples,when the identification of the single message matching the attributesassociated with the single-message action is carried out at 1230 andthere are multiple messages matching those attributes, then the mostrecent message in the message thread having those attributes isidentified. If one of the message attributes associated with thesingle-message action is the most recent last-changed timestamp,however, then this determination is used in place of determining themost recent message in the message thread.

The determination that a message in a thread is a “received” or “sent”message need not be made based on an explicit status or other explicitattribute set for that message (such as a flag or other explicit valueidentifying the message as “received” or “sent”). This attribute may bedetermined based on the particular folder or queue in which the messageis stored. If received email messages, for example, are stored in theinbox folder 222 illustrated in FIG. 2, then the identification ofreceived messages in a given thread can be accomplished by identifyingthe messages of the thread that are stored in the inbox folder 222;similarly, sent email messages can be identified from the sent messagefolder 226. If draft messages are stored in the outbox folder 224, thenthe identification of draft messages in a given thread can be carriedout by identifying the messages of the thread that are stored in theoutbox folder 224. Similarly, deleted messages in a thread can beidentified by their location in the deleted folder 228.

The option to select a single-message action may be made available atthe electronic device 100 only when it is determined that there is amessage in the thread that is a possible operand for that action. Thus,for example, if the message thread selected were thread entry 310 a ofFIG. 5, which consists of messages between two addressees and not agroup of three or more, the reply to all action may not be available tobe selected in the overlay 510, in a context menu, or by a keyboardshortcut keypress. A reply to all graphical user interface element mayonly appear in the overlay, or the option to reply to all may be shownin a context menu, if it is determined that at least one of the messagesin the selected thread has multiple recipients (and, if the messageattributes associated with the reply to all action require that themessage be a read received message, that there is at least one readreceived message with multiple recipients in the thread). This is anembodiment that would require retrieval of message attributes for themessages in the selected thread prior to detection of the selectedsingle-message action, as the retrieved message attributes are used todetermine which single-message actions are to be made available to theuser. It will be appreciated, however, that selection of the thread anddetermination of available message actions in this manner does notresult in identification of the target message that is to be operated onby the single-message action, as a determination which is the mostrecently received message having the associated message attributes hasnot yet been made.

It can be appreciated that the embodiments described herein provide anelectronic device, messaging client, and method by which a selectedsingle-message action can be applied to a message contained in amultiple-message thread without requiring express selection of theindividual message in the thread. This feature is particularly usefulwhere the messaging client displays the contents of a message inbox (orother folder) in an aggregated view in which only groups or threads ofmessages are listed, rather than individual messages. These embodimentsthus avoid the need to expressly display a listing of individualmessages in a graphical user interface in order to be able to select anindividual message to which the single-message action is to be applied.

The systems and methods disclosed herein are presented only by way ofexample and are not meant to limit the scope of the subject matterdescribed herein. Other variations of the systems and methods describedabove will be apparent to those in the art and as such are considered tobe within the scope of the subject matter described herein. For example,it should be understood that steps and the order of the steps in theprocessing described herein may be altered, modified and/or augmentedand still achieve the desired outcome. Throughout the specification,terms such as “may” and “can” are used interchangeably and use of anyparticular term should not be construed as limiting the scope orrequiring experimentation to implement the claimed subject matter orembodiments described herein.

The systems' and methods' data may be stored in one or more data stores.The data stores can be of many different types of storage devices andprogramming constructs, such as RAM, ROM, flash memory, programming datastructures, programming variables, etc. It is noted that data structuresdescribe formats for use in organizing and storing data in databases,programs, memory, or other computer-readable media for use by a computerprogram.

Code adapted to provide the systems and methods described above may beprovided on many different types of computer-readable media includingcomputer storage mechanisms (e.g., CD-ROM, diskette, RAM, flash memory,computer's hard drive, etc.) that contain instructions for use inexecution by a processor to perform the methods' operations andimplement the systems described herein.

The computer components, software modules, functions and data structuresdescribed herein may be connected directly or indirectly to each otherin order to allow the flow of data needed for their operations. Variousfunctional units described herein have been expressly or implicitlydescribed as modules and agents, in order to more particularly emphasizetheir independent implementation and operation. It is also noted that anagent, module or processor includes but is not limited to a unit of codethat performs a software operation, and can be implemented for exampleas a subroutine unit of code, or as a software function unit of code, oras an object (as in an object-oriented paradigm), or as an applet, or ina computer script language, or as another type of computer code. Thevarious functional units may be implemented in hardware circuitscomprising custom VLSI circuits or gate arrays; field-programmable gatearrays; programmable array logic; programmable logic devices;commercially available logic chips, transistors, and other suchcomponents. Modules implemented as software for execution by a processoror processors may comprise one or more physical or logical blocks ofcode that may be organized as one or more of objects, procedures, orfunctions. The modules need not be physically located together, but maycomprise code stored in different locations, such as over several memorydevices, capable of being logically joined for execution. Modules mayalso be implemented as combinations of software and hardware, such as aprocessor operating on a set of operational data or instructions.

A portion of the disclosure of this patent document contains materialwhich is or may be subject to one or more of copyright, design patent,industrial design, or unregistered design protection. The rightsholderhas no objection to the reproduction of any such material as portrayedherein through facsimile reproduction of the patent document or patentdisclosure, as it appears in the Patent and Trademark Office patent fileor records, but otherwise reserves all rights whatsoever.

1. A method implemented at an electronic device for applying asingle-message action to an email message, the method comprising:displaying a listing of message threads; while said listing of messagethreads is displayed, detecting selection of one of the message threads,said message thread comprising a plurality of email messages; anddetecting selection of a single-message action to be applied to a singleemail message, the selected single-message action being associated withat least one message attribute; identifying one of the plurality ofemail messages comprising said at least one message attribute; andapplying the selected single-message action to said identified emailmessage.
 2. The method of claim 1, wherein selection of one of themessage threads comprises selection of a graphical user interfaceelement displayed at the electronic device, the graphical user interfaceelement corresponding to said one of the message threads, and saidselection of the single-message action is carried out while saidgraphical user interface element is selected.
 3. The method of claim 1,wherein identifying the one of the plurality of email messages comprisesidentifying a most recent one of the plurality of email messagescomprising said at least one message attribute.
 4. The method of claim1, wherein the at least one message attribute comprises the messagebeing marked opened.
 5. The method of claim 1, wherein applying theselected single-message action comprises displaying a messagecomposition interface comprising content from the identified emailmessage.
 6. The method of claim 1, wherein: the selected single-messageaction comprises a reply action, and the at least one message attributecomprises the message being a received message; or the selectedsingle-message action comprises a reply to all action, and the at leastone message attribute comprises the message being a received message andthe message having a plurality of recipients.
 7. The method of claim 1,wherein the selected single-message action comprises a forward action,and the at least one message attribute comprises the message being areceived message.
 8. The method of claim 1, wherein the selectedsingle-message action comprises a send action, and the at least onemessage attribute comprises the message being a draft message having atleast one designated recipient.
 9. The method of claim 1, wherein theselected single-message action comprises a flag action, and the at leastone message attribute comprises either the message being a receivedmessage, the message having an attachment, or the message both being areceived message and having an attachment.
 10. The method of claim 1,wherein the identified email message is not a most recent message in theselected message thread.
 11. An electronic device for handling messagesand for applying single-message actions to an email message, theelectronic device comprising: a display interface; and a processor incommunication with the display interface, the processor being configuredto: display a listing of message threads via the display interface;while said listing of message threads is displayed, detect selection ofone of the message threads, said message thread comprising a pluralityof email messages; and detect selection of a single-message action to beapplied to a single email message, the selected single-message actionbeing associated with at least one message attribute; identify one ofthe plurality of email messages comprising said at least one messageattribute; and apply the selected single-message action to saididentified email message.
 12. The electronic device of claim 11, whereinselection of one of the message threads comprises selection of agraphical user interface element displayed at the electronic device, thegraphical user interface element corresponding to said one of themessage threads, and said selection of the single-message action iscarried out while said graphical user interface element is selected. 13.The electronic device of claim 11, wherein the processor is configuredto identify the one of the plurality of email messages by identifying amost recent one of the plurality of email messages comprising said atleast one message attribute.
 14. The electronic device of claim 11,wherein the at least one message attribute comprises the message beingmarked opened.
 15. The electronic device of claim 11, wherein theprocessor is configured to apply the selected single-message action bydisplaying via the display interface a message composition interfacecomprising content from the identified email message.
 16. The electronicdevice of claim 11, wherein: the selected single-message actioncomprises a reply action, and the at least one message attributecomprises the message being a received message; or the selectedsingle-message action comprises a reply to all action, and the at leastone message attribute comprises the message being a received message andthe message having a plurality of recipients.
 17. The electronic deviceof claim 11, wherein the selected single-message action comprises aforward action, and the at least one message attribute comprises themessage being a received message.
 18. The electronic device of claim 11,wherein the selected single-message action comprises a send action, andthe at least one message attribute comprises the message being a draftmessage having at least one designated recipient.
 19. The electronicdevice of claim 11, wherein the selected single-message action comprisesa flag action, and the at least one message attribute comprises eitherthe message being a received message, the message having an attachment,or the message both being a received message and having an attachment.20. The electronic device of claim 11, wherein the identified emailmessage is not a most recent message in the selected message thread.